<?php
	
	require_once('../app/models/User.php');
	require_once('eai.class.php');
	require_once('../common/library.inc.php');

        
	try{
	
		if(isset($_SESSION['user'])) 
		{
			$obj_User 			= $_SESSION['user'];
			$count_eai_status_1 = 0;
			
			if(!isset($_POST['operation']) || strcmp($_POST['operation'],"eai_pdf")!=0) 
			{	
				// Nombre d'évalués du user connecté qui sont à l'état 1 (EAI_STATUS_VALID_MANAGER_TMP) pour pouvoir mettre en place les feneêtres d'information
				$tab_arg		= array(	':id_user' 	=> $obj_User->get_id_user(),
											':id_status' => 1 
										);
				$data = db_request_select($REQUEST_160,$tab_arg,$obj_User->obj_Account->get_db_name());
				$count_eai_status_1 = $data[0][0];
				
				gui_top_page($count_eai_status_1);
			}
			if($obj_User->obj_Account->get_eai_valid() == true)
			{
			
				//=====================================================================================
				//L'objet EAI est distinct à l'objet USER (pour l'instant) car un user n'a pas forcément 
				//d'evaluation car son entreprise n'est pas forcément client de ce module
				//=====================================================================================
				if(!isset($_SESSION['eai'])) //s'il n'a pas encore été créé
				{
					$obj_EAI			=	new EAI($obj_User->get_id_user() , $obj_User->obj_Account->get_id_client_account(), $obj_User->obj_Account->get_db_name(),$obj_User->get_id_profile_type());
					
					$obj_EAI->set_tab_node_user($obj_User->obj_Account->obj_Corporate->get_list_node_child($obj_User->get_id_node()));
					$obj_EAI->set_tab_manager_under_user($obj_User->get_list_manager_under_user($obj_User->get_id_user()));
					
					$_SESSION['eai'] 	= 	$obj_EAI;
				}
				else
				{
					$obj_EAI	 = 	$_SESSION['eai'];
                                        //Si l'eai ne correspond à l'utilisateur connecté on recrée l'eai
                                        if(strcmp($obj_EAI->get_id_user(),$obj_User->get_id_user())!=0
                                                || strcmp($obj_EAI->get_db_name(),$obj_User->obj_Account->get_db_name())!=0
                                                || strcmp($obj_EAI->get_id_compte_client(),$obj_User->obj_Account->get_id_client_account())!=0
                                                || strcmp($obj_EAI->get_id_profile_type(),$obj_User->get_id_profile_type())!=0                                                
                                        ){
                                            
                                            unset($_SESSION['eai']);
                                            $obj_EAI			=	new EAI($obj_User->get_id_user() , $obj_User->obj_Account->get_id_client_account(), $obj_User->obj_Account->get_db_name(),$obj_User->get_id_profile_type());
					
                                            $obj_EAI->set_tab_node_user($obj_User->obj_Account->obj_Corporate->get_list_node_child($obj_User->get_id_node()));
                                            $obj_EAI->set_tab_manager_under_user($obj_User->get_list_manager_under_user($obj_User->get_id_user()));

                                            $_SESSION['eai'] 	= 	$obj_EAI;
                                           
                                        }
                                }
				
				//=====================================================================================
				// Gestion de mise à jour de l'état de EAI en mode automatique
				// A CODER: à automatiser directement dans la base de données
				$obj_EAI->update_eai_status();
				
				if(isset($_POST['operation']))
				{
					//======================================================================
					// Nous sommes en mode suppression d'un EAI
					if(strcmp($_POST['operation'],"eai_delete")==0 && isset($_POST['select_id_eai']))
					{
						$PARAM_id_client_account = NULL;
						if(isset($_POST['id_client_account']))
							$PARAM_id_client_account= 	lib_check_param_post($_POST['id_client_account']);
						
						$db_name 		        =  	$obj_User->obj_Account->get_db_name($PARAM_id_client_account);
						
						$obj_EAI->delete_eai($_POST['select_id_eai'],$db_name) ; 
						page_eai($obj_EAI,$obj_User->get_id_profile_type(),$count_eai_status_1);
					}
					//======================================================================
					// Nous sommes en mode de remise à zéro d'un EAI c'est à dire de remettre son status à 1
					elseif(strcmp($_POST['operation'],"eai_status_reset")==0 && isset($_POST['select_id_eai_raz']))
					{
						$obj_EAI->raz_eai_status($_POST['select_id_eai_raz'],$obj_User->obj_Account->get_db_name()) ; 
						page_eai($obj_EAI,$obj_User->get_id_profile_type(),$count_eai_status_1);
					}
					//======================================================================
					// Nous sommes en mode affichage d'un EAI cloturé d'un user
					elseif(strcmp($_POST['operation'],"eai_visualisation")==0 && isset($_POST['id_eai']))
					{
						$obj_EAI->show_eai($DISPLAY_VISUALISATION,$_POST['id_eai']);
					}
					elseif( strcmp($_POST['operation'],"eai_pdf")==0 && (isset($_POST['id_eai']) || isset($_POST['select_eai_template_creation'])) )
					{
						$id_eai         = NULL ; 
						$id_manager     = NULL ;
						$id_user        = NULL ;
						$id_template    = NULL ; 
						
						(isset($_POST['id_eai']))?$id_eai=$_POST['id_eai']:$id_eai = NULL;
						(isset($_POST['id_manager']))?$id_manager=$_POST['id_manager']:$id_manager = NULL;
						(isset($_POST['id_user']))?$id_user=$_POST['id_user']:$id_user = NULL;
						(isset($_POST['select_eai_template_creation']))?$id_template=$_POST['select_eai_template_creation']:$id_template = NULL;
						
	
						$obj_EAI->show_eai_pdf($id_eai ,$id_manager,$id_user, $id_template,$obj_User->obj_Account->get_id_client_account());
				
					}
					//======================================================================
					// Nous sommes en mode création d'un nouvel EAI d'un user
					elseif(strcmp($_POST['operation'],"eai_creation")==0)
					{
						$obj_EAI->show_eai($DISPLAY_CREATION,NULL,$_POST['id_stage'],$_POST['id_manager'],$_POST['id_user'],$_POST['select_eai_template_creation'], $obj_User->obj_Account->get_id_client_account());
					}
					//======================================================================
					// Nous sommes en mode création d'un nouvel EAI d'un user à la première étape
					elseif(strcmp($_POST['operation'],"eai_creation_stage")==0)
					{
						gui_confirm_eai_valid_dialog_box();
						
						if(isset($_POST['requete'])) $display = (int)$_POST['requete'];
						
						// Dans ce cas ce n'est pas vraiment la création car le manager revient pour mettre à jour la date d'EAI
						if(isset($_POST['id_eai']) && strcmp($_POST['id_eai'],"")!=0)
						{
							$obj_EAI->update_eai_stage($_POST['id_eai'], NULL , NULL, $_POST);
							$id_stage = ((int)$_POST['id_stage'] + 1); // option bouton retour Etape suivante
							
							while(!$obj_EAI->check_stage_activate($_POST['id_eai'],$id_stage, $obj_User->obj_Account->get_id_client_account()))
								$id_stage++;
							
							$obj_EAI->show_eai($display,$_POST['id_eai'],$id_stage,NULL,NULL,NULL, $obj_User->obj_Account->get_id_client_account());
						}
						// Dans ce cas c'est la première étape et donc la vrai création de l'EAI
						else
						{
							$data_id_eai = $obj_EAI->update_eai_stage(NULL,$_POST['select_client_eai'] , $_POST['select_eai_template'], $_POST);
							
							// Gestion des étapes
							$id_stage = ((int)$_POST['id_stage'] + 1); 
							while(!$obj_EAI->check_stage_activate($data_id_eai[0][0],$id_stage, $obj_User->obj_Account->get_id_client_account()))
								$id_stage++;
								
							// Même si nous sommes en création les étapes suivantes seront traitées comme des mise à jour de la création
							$obj_EAI->show_eai($display,$data_id_eai[0][0],$id_stage,NULL,NULL,NULL, $obj_User->obj_Account->get_id_client_account());
						}
					}
					//======================================================================
					// Nous sommes en mode mise à jour d'un nouvel EAI ou d'un EAI non clôturé d'un user
					elseif(strcmp($_POST['operation'],"eai_update_stage")==0)
					{
						gui_confirm_eai_valid_dialog_box();
						$id_stage = 0 ; 
						$display = (int)$_POST["requete"] ; 
	
						if( $display == $DISPLAY_CREATION || $display == $DISPLAY_UPDATE)
						{	
							$obj_EAI->update_eai_stage($_POST['id_eai'], NULL , NULL, $_POST);
						}
						elseif( $display == $DISPLAY_UPDATE_EVALUE)
						{
							if((int)$_POST['id_stage'] > 0)
							{
								$obj_EAI->update_eai_stage($_POST['id_eai'], NULL , NULL, $_POST);
							}							
						}
						if((int)$_POST["move"] == $MOVE_NEUTRAL){
							$id_stage = (int)$_POST['id_stage'] ;
							while(!$obj_EAI->check_stage_activate($_POST['id_eai'],$id_stage, $obj_User->obj_Account->get_id_client_account()))
								$id_stage++;
						}
						elseif((int)$_POST["move"] == $MOVE_BACK){
							$id_stage = ((int)$_POST['id_stage'] - 1); // option bouton retour Etape précédente/ ou utilisé aussi lorsque l'on retourne sur l'EAI via le menu
							while(!$obj_EAI->check_stage_activate($_POST['id_eai'],$id_stage, $obj_User->obj_Account->get_id_client_account()))
								$id_stage--;
						}
						elseif((int)$_POST["move"] == $MOVE_NEXT){
							$id_stage = ((int)$_POST['id_stage'] + 1); // option bouton retour Etape suivante
							while(!$obj_EAI->check_stage_activate($_POST['id_eai'],$id_stage, $obj_User->obj_Account->get_id_client_account()))
								$id_stage++;
						}
						$obj_EAI->show_eai($display,$_POST['id_eai'],$id_stage,NULL,NULL,NULL, $obj_User->obj_Account->get_id_client_account());
					}
					//======================================================================
					// Nous sommes en mode mise à jour d'un nouvel EAI ou d'un EAI non clôturé d'un user 
					// mais le l'utilisateur desire sortir de l'EAI (bouton sauvegarde)
					elseif(strcmp($_POST['operation'],"eai_save_stage")==0)
					{
						$id_stage = 0 ; 
						$display = (int)$_POST["requete"] ; 
                                                
						if( $display == $DISPLAY_CREATION || $display == $DISPLAY_UPDATE)
						{	
							$obj_EAI->update_eai_stage($_POST['id_eai'], NULL , NULL, $_POST);
                                                        $display= $DISPLAY_UPDATE;
						}
						elseif( $display == $DISPLAY_UPDATE_EVALUE)
						{
							if((int)$_POST['id_stage'] > 0)
							{
								$obj_EAI->update_eai_stage($_POST['id_eai'], NULL , NULL, $_POST);
							}							
						}
						//page_eai($obj_EAI,$obj_User->get_id_profile_type(),$count_eai_status_1);
                                                
                                                while(!$obj_EAI->check_stage_activate($_POST['id_eai'],$id_stage, $obj_User->obj_Account->get_id_client_account()))
								$id_stage++;
                                                
                                                $id_stage = (int)$_POST['id_stage'] ;
                                                $obj_EAI->show_eai($display,$_POST['id_eai'],$id_stage,NULL,NULL,NULL, $obj_User->obj_Account->get_id_client_account());
                                                echo gui_info_message_delayed($LABEL_0213,"saved_msg",3000);
                                                
					}
					//=============================================================================================
					// Affichage du modèle d'EAI selectionné pour le super-administrateur pour le mettre à jour
					elseif(strcmp($_POST['operation'],"show_update_template")==0 && isset($_POST['select_client_eai'])&& isset($_POST['select_eai_template']))
					{
						$obj_EAI->show_eai_template($_POST['select_client_eai'],$_POST['select_eai_template']);
					}
					//=============================================================================================
					// Mise à jour du modèle d'EAI selectionné par le super-administrateur 
					elseif(strcmp($_POST['operation'],"update_template")==0)
					{
						$obj_EAI->update_eai_template($_POST['select_client_eai'] , $_POST['select_eai_template'], $_POST);				
						$obj_EAI->show_eai_template($_POST['select_client_eai'],$_POST['select_eai_template']);
					}
					//=============================================================================================
					// Création d'une campagne d'entretien
					elseif(strcmp($_POST['operation'],"campaign_creation")==0)
					{
						$date_start		= 	lib_change_date_gui_to_mysql(lib_check_param_post($_POST['date_start_creation'],$CHECK_DATE));
						$date_end		= 	lib_change_date_gui_to_mysql(lib_check_param_post($_POST['date_end_creation'],$CHECK_DATE));
						
						$obj_EAI->insert_campaign($date_start,$date_end) ; 
						
						page_eai($obj_EAI,$obj_User->get_id_profile_type(),$count_eai_status_1);
					}
					//=============================================================================================
					// Mise à jour d'une campagne d'entretien
					elseif(strcmp($_POST['operation'],"campaign_update")==0)
					{
						$id_campaign    = 	lib_check_param_post($_POST['id_campaign']);
						$date_start		= 	lib_change_date_gui_to_mysql(lib_check_param_post($_POST['date_start_update'],$CHECK_DATE));
						$date_end		= 	lib_change_date_gui_to_mysql(lib_check_param_post($_POST['date_end_update'],$CHECK_DATE));
						
						$obj_EAI->update_campaign($id_campaign,$date_start,$date_end) ; 
						
						page_eai($obj_EAI,$obj_User->get_id_profile_type(),$count_eai_status_1);
					}
				}
				else
				{
					page_eai($obj_EAI,$obj_User->get_id_profile_type(),$count_eai_status_1);
				}
			}
			else
				throw new Exception($MESSAGE_0039);
		}
		else{
			header("Location: ../".$PAGE_0001."");
		}
	}		
//	catch (SIRHException $e)
//	{
//		gui_alert_message($e->getMessage(),$ALERT_MESSAGE); 
//	}
	catch (Exception $e)
	{
		gui_alert_message($e->getMessage(),$ERROR_MESSAGE);
	}
	
	if(!isset($_POST['operation']) || strcmp($_POST['operation'],"eai_pdf")!=0) {
		gui_bottom_page();
	}
	
	
//============================================================================
// page_eai()
//============================================================================
function page_eai($obj_EAI,$user_profile,$count_eai_status_1)
{
	Global 	$LABEL_0063, $LABEL_0065, $LABEL_0066,$LABEL_0098, $LABEL_0123 ;
	
	//=============================================================================================
	//construction des fenêtre de confirmation de la suppression des eai au statut cloturé
	gui_confirm_del_eai_dialog_box();
	gui_confirm_del_eai_by_manager($count_eai_status_1);
	
	gui_confirm_raz_eai_dialog_box();
	gui_info_no_campaign_dialog_box();
	gui_info_eai_user_exist_in_period_campaign_dialog_box();
	
	echo gui_table_tag_open("100%",5);
				echo gui_tr_tag_open();
					echo gui_td_tag("","15%",NULL,NULL,NULL,NULL,NULL,NULL,NULL);
						echo gui_td_tag_open("84%",NULL,NULL,NULL,NULL,"td_blue_round",NULL,NULL);
						
	echo		gui_font_tag("titre_1",$LABEL_0063);
	echo 			gui_div_tag_open("tabs"); 
	echo "\n		<ul>";
	echo "\n			<li><a href=\"#tab_eai_user\">".$LABEL_0064."</a></li>";
	if( $user_profile == PROFILE_MANAGER || 
		$user_profile == PROFILE_EXPERT_RH || 
		$user_profile == PROFILE_ADMINISTRATEUR || 
		$user_profile == PROFILE_SUPER_ADMINISTRATEUR) 
		echo "\n			<li><a href=\"#tab_eai_manager\">".Strings::LABEL_0064."</a></li>";
	if( $user_profile == PROFILE_EXPERT_RH || 
		$user_profile == PROFILE_ADMINISTRATEUR || 
		$user_profile == PROFILE_SUPER_ADMINISTRATEUR) 
		echo "\n			<li><a href=\"#tab_eai_hr_expert\">".$LABEL_0066."</a></li>";
	if($user_profile == PROFILE_ADMINISTRATEUR || $user_profile == PROFILE_SUPER_ADMINISTRATEUR) 
		echo "\n			<li><a href=\"#tab_eai_admin\">".$LABEL_0123."</a></li>";
	if($user_profile == PROFILE_SUPER_ADMINISTRATEUR)  
		echo "\n			<li><a href=\"#tab_eai_sup_adm\">".$LABEL_0098."</a></li>";
	echo "\n		</ul>";
	
	$obj_EAI->show_tab_user($obj_EAI->get_id_user());
	
	if( $user_profile == PROFILE_MANAGER || 
		$user_profile == PROFILE_EXPERT_RH || 
		$user_profile == PROFILE_ADMINISTRATEUR || 
		$user_profile == PROFILE_SUPER_ADMINISTRATEUR) 
		$obj_EAI->show_tab_manager($obj_EAI->get_id_user());
	
	if( $user_profile == PROFILE_EXPERT_RH || 
		$user_profile == PROFILE_ADMINISTRATEUR || 
		$user_profile == PROFILE_SUPER_ADMINISTRATEUR) 
		$obj_EAI->show_tab_hr_expert();
	
	if($user_profile == PROFILE_ADMINISTRATEUR || $user_profile == PROFILE_SUPER_ADMINISTRATEUR) 
		$obj_EAI->show_tab_admin();
	
	if($user_profile == PROFILE_SUPER_ADMINISTRATEUR) 
		$obj_EAI->show_tab_sup_adm();
		
	echo 			gui_div_tag_close();
	echo gui_td_tag_close();
				echo gui_td_tag("","1%",NULL,NULL,NULL,NULL,NULL,NULL,NULL);
			echo gui_tr_tag_close();
		echo gui_table_tag_close();
	
}
